Micron Document
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| SparkN0de-git | SparkN0de |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Node / ReticulumProjects / MeshChatX.git / files / tests / e2e / conversations-nomad-visualiser.spec.js

Displaying Raw • Download


tests/e2e/conversations-nomad-visualiser.spec.js 033004824d4b26738d8dd2b830bf199680f38f4f (03300482) Text, 4.26 KB

Tff7b72const Tb4b4b4{ Te6edf3testTb4b4b4, Te6edf3expect Tb4b4b4} Tff7b72= Te6edf3requireTb4b4b4(Ta5d6ff"@playwright/test"Tb4b4b4)Tb4b4b4;
Tff7b72const Tb4b4b4{ Te6edf3prepareE2eSession Tb4b4b4} Tff7b72= Te6edf3requireTb4b4b4(Ta5d6ff"./helpers"Tb4b4b4)Tb4b4b4;

Te6edf3testTb4b4b4.Te6edf3describeTb4b4b4(Ta5d6ff"Messages (conversations)"Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Te6edf3testTb4b4b4.Te6edf3beforeEachTb4b4b4(Tff7b72async Tb4b4b4(Tb4b4b4{ Te6edf3request Tb4b4b4}Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72await Te6edf3prepareE2eSessionTb4b4b4(Te6edf3requestTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;

Te6edf3testTb4b4b4(Ta5d6ff"shows conversation sidebar and empty chat state"Tb4b4b4, Tff7b72async Tb4b4b4(Tb4b4b4{ Te6edf3page Tb4b4b4}Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72await Te6edf3pageTb4b4b4.Tff7b72gotoTb4b4b4(Ta5d6ff"/#/messages"Tb4b4b4)Tb4b4b4;
Tff7b72await Te6edf3expectTb4b4b4(Te6edf3pageTb4b4b4)Tb4b4b4.Te6edf3toHaveURLTb4b4b4(Ta5d6ff/#\/messages/Tb4b4b4)Tb4b4b4;
Tff7b72await Te6edf3expectTb4b4b4(Te6edf3pageTb4b4b4.Te6edf3getByTextTb4b4b4(Ta5d6ff"Conversations"Tb4b4b4, Tb4b4b4{ Te6edf3exactTff7b72: Tff7b72true Tb4b4b4}Tb4b4b4)Tb4b4b4.Te6edf3firstTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeVisibleTb4b4b4(Tb4b4b4{ Te6edf3timeoutTff7b72: T79c0ff25000 Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72await Te6edf3expectTb4b4b4(Te6edf3pageTb4b4b4.Te6edf3getByTextTb4b4b4(Ta5d6ff"No Conversations"Tb4b4b4, Tb4b4b4{ Te6edf3exactTff7b72: Tff7b72true Tb4b4b4}Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeVisibleTb4b4b4(Tb4b4b4{ Te6edf3timeoutTff7b72: T79c0ff25000 Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72await Te6edf3expectTb4b4b4(Te6edf3pageTb4b4b4.Te6edf3getByTextTb4b4b4(Ta5d6ff"No Active Chat"Tb4b4b4, Tb4b4b4{ Te6edf3exactTff7b72: Tff7b72true Tb4b4b4}Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeVisibleTb4b4b4(Tb4b4b4{ Te6edf3timeoutTff7b72: T79c0ff25000 Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72await Te6edf3expectTb4b4b4(Te6edf3pageTb4b4b4.Te6edf3getByTextTb4b4b4(Ta5d6ff/Select a peer from the sidebar/iTb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeVisibleTb4b4b4(Tb4b4b4{ Te6edf3timeoutTff7b72: T79c0ff15000 Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;

Te6edf3testTb4b4b4(Ta5d6ff"switches sidebar to Announces tab and shows peer discovery copy"Tb4b4b4, Tff7b72async Tb4b4b4(Tb4b4b4{ Te6edf3page Tb4b4b4}Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72await Te6edf3pageTb4b4b4.Tff7b72gotoTb4b4b4(Ta5d6ff"/#/messages"Tb4b4b4)Tb4b4b4;
Tff7b72await Te6edf3pageTb4b4b4.Te6edf3getByTextTb4b4b4(Ta5d6ff"Announces"Tb4b4b4, Tb4b4b4{ Te6edf3exactTff7b72: Tff7b72true Tb4b4b4}Tb4b4b4)Tb4b4b4.Te6edf3firstTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3clickTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72await Te6edf3expectTb4b4b4(Te6edf3pageTb4b4b4.Te6edf3getByPlaceholderTb4b4b4(Ta5d6ff/Search .* recent announces/iTb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeVisibleTb4b4b4(Tb4b4b4{ Te6edf3timeoutTff7b72: T79c0ff20000 Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72await Te6edf3expectTb4b4b4(
Te6edf3pageTb4b4b4.Te6edf3getByTextTb4b4b4(Ta5d6ff/No Peers Discovered|Waiting for someone to announce/iTb4b4b4)Tb4b4b4.Te6edf3firstTb4b4b4(Tb4b4b4)
Tb4b4b4)Tb4b4b4.Te6edf3toBeVisibleTb4b4b4(Tb4b4b4{ Te6edf3timeoutTff7b72: T79c0ff20000 Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;

Te6edf3testTb4b4b4(Ta5d6ff"sidebar navigates between Nomad Network and Messages"Tb4b4b4, Tff7b72async Tb4b4b4(Tb4b4b4{ Te6edf3page Tb4b4b4}Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72await Te6edf3pageTb4b4b4.Tff7b72gotoTb4b4b4(Ta5d6ff"/#/nomadnetwork"Tb4b4b4)Tb4b4b4;
Tff7b72await Te6edf3expectTb4b4b4(Te6edf3pageTb4b4b4)Tb4b4b4.Te6edf3toHaveURLTb4b4b4(Ta5d6ff/#\/nomadnetwork/Tb4b4b4)Tb4b4b4;
Tff7b72await Te6edf3expectTb4b4b4(Te6edf3pageTb4b4b4.Te6edf3getByTextTb4b4b4(Ta5d6ff"No Active Node"Tb4b4b4, Tb4b4b4{ Te6edf3exactTff7b72: Tff7b72true Tb4b4b4}Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeVisibleTb4b4b4(Tb4b4b4{ Te6edf3timeoutTff7b72: T79c0ff30000 Tb4b4b4}Tb4b4b4)Tb4b4b4;

Tff7b72const Te6edf3sideNav Tff7b72= Te6edf3pageTb4b4b4.Te6edf3locatorTb4b4b4(Ta5d6ff"ul.py-3"Tb4b4b4)Tb4b4b4;
Tff7b72await Te6edf3sideNavTb4b4b4.Te6edf3locatorTb4b4b4(Ta5d6ff'a[href*="#/messages"]'Tb4b4b4)Tb4b4b4.Te6edf3clickTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72await Te6edf3expectTb4b4b4(Te6edf3pageTb4b4b4)Tb4b4b4.Te6edf3toHaveURLTb4b4b4(Ta5d6ff/#\/messages/Tb4b4b4, Tb4b4b4{ Te6edf3timeoutTff7b72: T79c0ff15000 Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72await Te6edf3expectTb4b4b4(Te6edf3pageTb4b4b4.Te6edf3getByTextTb4b4b4(Ta5d6ff"No Active Chat"Tb4b4b4, Tb4b4b4{ Te6edf3exactTff7b72: Tff7b72true Tb4b4b4}Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeVisibleTb4b4b4(Tb4b4b4{ Te6edf3timeoutTff7b72: T79c0ff25000 Tb4b4b4}Tb4b4b4)Tb4b4b4;

Tff7b72await Te6edf3sideNavTb4b4b4.Te6edf3locatorTb4b4b4(Ta5d6ff'a[href*="#/nomadnetwork"]'Tb4b4b4)Tb4b4b4.Te6edf3clickTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72await Te6edf3expectTb4b4b4(Te6edf3pageTb4b4b4)Tb4b4b4.Te6edf3toHaveURLTb4b4b4(Ta5d6ff/#\/nomadnetwork/Tb4b4b4, Tb4b4b4{ Te6edf3timeoutTff7b72: T79c0ff15000 Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72await Te6edf3expectTb4b4b4(Te6edf3pageTb4b4b4.Te6edf3getByTextTb4b4b4(Ta5d6ff"No Active Node"Tb4b4b4, Tb4b4b4{ Te6edf3exactTff7b72: Tff7b72true Tb4b4b4}Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeVisibleTb4b4b4(Tb4b4b4{ Te6edf3timeoutTff7b72: T79c0ff25000 Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;

Te6edf3testTb4b4b4.Te6edf3describeTb4b4b4(Ta5d6ff"Nomad Network"Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Te6edf3testTb4b4b4.Te6edf3beforeEachTb4b4b4(Tff7b72async Tb4b4b4(Tb4b4b4{ Te6edf3request Tb4b4b4}Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72await Te6edf3prepareE2eSessionTb4b4b4(Te6edf3requestTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;

Te6edf3testTb4b4b4(Ta5d6ff"shows empty state and sidebar tabs"Tb4b4b4, Tff7b72async Tb4b4b4(Tb4b4b4{ Te6edf3page Tb4b4b4}Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72await Te6edf3pageTb4b4b4.Tff7b72gotoTb4b4b4(Ta5d6ff"/#/nomadnetwork"Tb4b4b4)Tb4b4b4;
Tff7b72await Te6edf3expectTb4b4b4(Te6edf3pageTb4b4b4)Tb4b4b4.Te6edf3toHaveURLTb4b4b4(Ta5d6ff/#\/nomadnetwork/Tb4b4b4)Tb4b4b4;
Tff7b72await Te6edf3expectTb4b4b4(Te6edf3pageTb4b4b4.Te6edf3getByTextTb4b4b4(Ta5d6ff"No Active Node"Tb4b4b4, Tb4b4b4{ Te6edf3exactTff7b72: Tff7b72true Tb4b4b4}Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeVisibleTb4b4b4(Tb4b4b4{ Te6edf3timeoutTff7b72: T79c0ff25000 Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72await Te6edf3expectTb4b4b4(Te6edf3pageTb4b4b4.Te6edf3getByTextTb4b4b4(Ta5d6ff/Select a Node to start browsing/iTb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeVisibleTb4b4b4(Tb4b4b4{ Te6edf3timeoutTff7b72: T79c0ff15000 Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72await Te6edf3expectTb4b4b4(Te6edf3pageTb4b4b4.Te6edf3getByTextTb4b4b4(Ta5d6ff"Favourites"Tb4b4b4, Tb4b4b4{ Te6edf3exactTff7b72: Tff7b72true Tb4b4b4}Tb4b4b4)Tb4b4b4.Te6edf3firstTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeVisibleTb4b4b4(Tb4b4b4{ Te6edf3timeoutTff7b72: T79c0ff15000 Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72await Te6edf3expectTb4b4b4(Te6edf3pageTb4b4b4.Te6edf3getByTextTb4b4b4(Ta5d6ff"Announces"Tb4b4b4, Tb4b4b4{ Te6edf3exactTff7b72: Tff7b72true Tb4b4b4}Tb4b4b4)Tb4b4b4.Te6edf3firstTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeVisibleTb4b4b4(Tb4b4b4{ Te6edf3timeoutTff7b72: T79c0ff15000 Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;

Te6edf3testTb4b4b4.Te6edf3describeTb4b4b4(Ta5d6ff"Network visualiser"Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Te6edf3testTb4b4b4.Te6edf3beforeEachTb4b4b4(Tff7b72async Tb4b4b4(Tb4b4b4{ Te6edf3request Tb4b4b4}Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72await Te6edf3prepareE2eSessionTb4b4b4(Te6edf3requestTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;

Te6edf3testTb4b4b4(Ta5d6ff"shows mesh header, graph container, and node search"Tb4b4b4, Tff7b72async Tb4b4b4(Tb4b4b4{ Te6edf3page Tb4b4b4}Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72await Te6edf3pageTb4b4b4.Tff7b72gotoTb4b4b4(Ta5d6ff"/#/network-visualiser"Tb4b4b4)Tb4b4b4;
Tff7b72await Te6edf3expectTb4b4b4(Te6edf3pageTb4b4b4)Tb4b4b4.Te6edf3toHaveURLTb4b4b4(Ta5d6ff/#\/network-visualiser/Tb4b4b4)Tb4b4b4;
Tff7b72await Te6edf3expectTb4b4b4(Te6edf3pageTb4b4b4.Te6edf3getByTextTb4b4b4(Ta5d6ff"Reticulum Mesh"Tb4b4b4, Tb4b4b4{ Te6edf3exactTff7b72: Tff7b72true Tb4b4b4}Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeVisibleTb4b4b4(Tb4b4b4{ Te6edf3timeoutTff7b72: T79c0ff30000 Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72await Te6edf3expectTb4b4b4(Te6edf3pageTb4b4b4.Te6edf3locatorTb4b4b4(Ta5d6ff"#network"Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeAttachedTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72await Te6edf3expectTb4b4b4(Te6edf3pageTb4b4b4.Te6edf3getByPlaceholderTb4b4b4(Ta5d6ff/Search nodes \(\d+\)/Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeVisibleTb4b4b4(Tb4b4b4{ Te6edf3timeoutTff7b72: T79c0ff30000 Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;

Te6edf3testTb4b4b4(Ta5d6ff"collapses and expands control panel via header"Tb4b4b4, Tff7b72async Tb4b4b4(Tb4b4b4{ Te6edf3page Tb4b4b4}Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72await Te6edf3pageTb4b4b4.Tff7b72gotoTb4b4b4(Ta5d6ff"/#/network-visualiser"Tb4b4b4)Tb4b4b4;
Tff7b72await Te6edf3expectTb4b4b4(Te6edf3pageTb4b4b4.Te6edf3getByTextTb4b4b4(Ta5d6ff"Reticulum Mesh"Tb4b4b4, Tb4b4b4{ Te6edf3exactTff7b72: Tff7b72true Tb4b4b4}Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeVisibleTb4b4b4(Tb4b4b4{ Te6edf3timeoutTff7b72: T79c0ff30000 Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72await Te6edf3expectTb4b4b4(Te6edf3pageTb4b4b4.Te6edf3getByTextTb4b4b4(Ta5d6ff"Auto Update"Tb4b4b4, Tb4b4b4{ Te6edf3exactTff7b72: Tff7b72true Tb4b4b4}Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeVisibleTb4b4b4(Tb4b4b4{ Te6edf3timeoutTff7b72: T79c0ff30000 Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72await Te6edf3pageTb4b4b4.Te6edf3getByTextTb4b4b4(Ta5d6ff"Reticulum Mesh"Tb4b4b4, Tb4b4b4{ Te6edf3exactTff7b72: Tff7b72true Tb4b4b4}Tb4b4b4)Tb4b4b4.Te6edf3clickTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72await Te6edf3expectTb4b4b4(Te6edf3pageTb4b4b4.Te6edf3getByTextTb4b4b4(Ta5d6ff"Auto Update"Tb4b4b4, Tb4b4b4{ Te6edf3exactTff7b72: Tff7b72true Tb4b4b4}Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeHiddenTb4b4b4(Tb4b4b4{ Te6edf3timeoutTff7b72: T79c0ff10000 Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72await Te6edf3pageTb4b4b4.Te6edf3getByTextTb4b4b4(Ta5d6ff"Reticulum Mesh"Tb4b4b4, Tb4b4b4{ Te6edf3exactTff7b72: Tff7b72true Tb4b4b4}Tb4b4b4)Tb4b4b4.Te6edf3clickTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72await Te6edf3expectTb4b4b4(Te6edf3pageTb4b4b4.Te6edf3getByTextTb4b4b4(Ta5d6ff"Auto Update"Tb4b4b4, Tb4b4b4{ Te6edf3exactTff7b72: Tff7b72true Tb4b4b4}Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeVisibleTb4b4b4(Tb4b4b4{ Te6edf3timeoutTff7b72: T79c0ff10000 Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────